\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{fullpage}
\usepackage{eurosym}
\usepackage{fullpage}
\usepackage{graphicx}
\usepackage{listings}
\lstset{
  language=Java,
  label=DescriptiveLabel,
  breaklines=true,
  showspaces=false,
  showstringspaces=false
}

%opening
\title{Open Information Systems Project - Conceptual Schema}
\author{Daniel Silva Chaltein de Almeida (98844)\\
Felipe Gomez Marulanda(92903)\\
Łukasz Kidziński (97612)\\
Thiago Mendonça (98255)\\
Wolney Mello Neto (98782)\\
\texttt{\{{}dsilvach,fegomezm,lkidzins,tdantasd,wdemello\}@vub.ac.be}}
\begin{document}

\maketitle

\section{Description}

We are proposing an ontology for RFPs\footnote{Request For Proposal} systems that manage movie rentals. Such systems would have the following process flow:
\begin{enumerate}
  \item Clients make requests: The client can either choose a specific movie or if he is uncertain about which movie to rent, choose some desired movie properties. The proposer will then recommend movies based on the constraints he defined.
    \subitem Constraints can be: genres, name of actors, director, year of release, etc.
    \subitem The client can also put a target price to pay (which can be accepted or raised by the proposer).
    \subitem Optionally, the client can also indicate until when he wishes to receive movie proposals, in case he wants the movies until a specific date.
  \item Video store owners look at the requests and make proposals, accepting the proposed price (if there is one) or adding their own price.
  \item Clients choose the best proposal
\end{enumerate}

Example:
\begin{enumerate}
  \item Client A makes a request for: 2 comedy movies with Jim Carrey and 1 Action movie from the previous year.
  \item Video store owners look at the request and make proposals: (Ace Ventura, The Mask and Inception for X \euro).
  \item Client A chooses one of the proposals and completes the transaction (or declines all the proposals).
\end{enumerate}

Ontology description:
\begin{itemize}
  \item At the time a request is made the client is not provided with the list of movies that match it. That list is part of the proposal and is going to be constructed by the video store owners. That is why every attribute of the Movie entity was attached to the Request entity.
  \item Only the most confusing entities have notes. Roles do not have them.
\end{itemize}

Figure \ref{fig:onto} shows the resulting ontology.

\begin{figure}[h!]
 \centering
  \includegraphics[width=\textwidth]{movie_ontology.jpg}
 \caption{Ontology constructed}
 \label{fig:onto}
\end{figure}



\section{Implementation}

This 3rd deliverable was implemented within two tools: Protégé\cite{protege} and Jena\cite{jena}. The former was used to build the ontology model in OWL\footnote{Web Ontology Language} while the latter was adopted to implement in Java the queries in SPARQL\footnote{SPARQL Protocol and RDF Query Language}.

\subsection{Building Ontology with Protégé}

\input{movie}

\input{sparqlqueries}

\appendix

\section{Ontology}

\lstinputlisting[language=XML,breaklines=true,showspaces=false,showstringspaces=false]{../../ois/src/owl/movie_ontology.owl}

\bibliographystyle{plain}
\bibliography{biblio}

\end{document}
